////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include "Test_SteeringEntity.hpp"

#include <SmegCore/Entity/EntityManager.hpp>
#include <SmegCore/Math/BoundingVolumes/Circle.hpp>

#include <SmegTools/Debug/DebugNew.hpp>
        
////////////////////////////////////////////////////////////
/// Default Constructor
////////////////////////////////////////////////////////////
Test_SteeringEntity::Test_SteeringEntity() :
    smeg::ai::AIEntity()
{
    ComputeBoundingVolume();
    smeg::core::EntityManager::GetInstance()->AddEntity( this );
}
    
////////////////////////////////////////////////////////////
/// Constructor with a texture
////////////////////////////////////////////////////////////
Test_SteeringEntity::Test_SteeringEntity( const sf::Texture* _pTexture ) :
    smeg::ai::AIEntity( _pTexture )
{
    ComputeBoundingVolume();
    smeg::core::EntityManager::GetInstance()->AddEntity( this );
}
    
////////////////////////////////////////////////////////////
/// Constructor with a texture and a rectangle
////////////////////////////////////////////////////////////
Test_SteeringEntity::Test_SteeringEntity( const sf::Texture* _pTexture, const sf::IntRect& _Rectangle ) :
    smeg::ai::AIEntity( _pTexture, _Rectangle )
{
    ComputeBoundingVolume();
    smeg::core::EntityManager::GetInstance()->AddEntity( this );
}
    
////////////////////////////////////////////////////////////
/// Copy Constructor
////////////////////////////////////////////////////////////
Test_SteeringEntity::Test_SteeringEntity( const Test_SteeringEntity& _Copy ) :
    smeg::ai::AIEntity( _Copy )
{
    ComputeBoundingVolume();
    smeg::core::EntityManager::GetInstance()->AddEntity( this );
}
    
////////////////////////////////////////////////////////////
/// Destructor
////////////////////////////////////////////////////////////
Test_SteeringEntity::~Test_SteeringEntity()
{
}

void Test_SteeringEntity::ComputeBoundingVolume()
{
    m_pBoundingVolume = new smeg::math::Circle( getPosition(), 20.0f );

    smeg::ai::AIEntity::ComputeBoundingVolume();
}

